<?php if (!defined('BASEPATH')) exit ('No direct script access allowed');

include_once 'TOLivro.php';
include_once 'TOMagazine.php';
include_once 'TOMidia.php';
include_once 'TOTipo.php';

/**
 * Representa um item (livro/magazine/DVD, CD)
 * 
 * @author  Douglas Rafael
 * @package models
 */
class TOItem {
    const TIPO_BOOK = 1;
    const TIPO_MAGAZINE = 2;
    const TIPO_MIDIA = 3;
    const ITEM_ATIVO = 1;
    const ITEM_INATIVO = 0;

    public $codigo;
    public $titulo;
    public $subtitulo;
    public $descricao;
    public $localizacao;
    public $imagem;
    public $idioma;
     
    /**
     *  @var array [TOLivro] Array de livros
     */
    public $livro;

    /**
     *  @var array [TOMagazine] Array de magazines
     */
    public $magazine;

    /**
     *  @var array [TOMedia] Array de Mídias
     */
    public $midia;

    /**
     *  @var array [TOCategoria] As categorias do livro
     */
    public $categorias;

    /**
     *  @var TOMovimentacao Movimentação do livro
     */
    public $movimentacao;

    /**
     *  @var TOEmprestimo Empréstimos do livro
     */
    public $emprestimos;

    /**
     * @var TOUsuario
     */
    public $admin;
    
    /**
     * @var TOTipo
     */
    public $tipo;
    
    public $data_cadastro;
    
    
    
    /**
     * Retorna as categorias separadas por virgula
     * 
     * @param $link_search  Retorna as categorias com link para busca // buscar?search_term=vida
     * @return string       Nome das categorias
     */
    public function to_string_categories($link_search = FALSE) {
        $_arr = array();
        $CI =& get_instance();
        foreach ($this->categorias as $categoria) {
            if($link_search){
                $categoria = anchor($CI->router->class . '/buscar?search_term=' . $categoria->nome, $categoria->nome, array('title' => 'Buscar pela categoria: '. $categoria->nome));
            }else{
                $categoria = $categoria->nome;
            }
            array_push($_arr, $categoria);
        }
        return implode(', ', $_arr);
    }

    /**
     * Retorna em forma de string o tipo do item (livro, magazine, mídia)
     * 
     * @param type $option
     * @return type
     */
    public function to_string_tipo_item($option = 1) {
        if ($this->tipo->id == self::TIPO_BOOK) {
            $string_tipo = $option == 1 ? 'livro' : 'LIVRO';
        } elseif ($this->tipo->id == self::TIPO_MAGAZINE) {
            $string_tipo = $option == 1 ? 'magazine' : 'MAGAZINE';
        } elseif ($this->tipo->id == self::TIPO_MIDIA) {
            $string_tipo = $option == 1 ? 'midia' : 'MÍDIA';
        }
        return $string_tipo;
    }
}
